package org.wendu.wdoa.common;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.wendu.wdoa.common.page.Page;
import org.wendu.wdoa.common.page.PageParam;
import org.wendu.wdoa.common.page.QueryAction;


import java.util.List;

public class Utils {

    public static <T> Page getPage(PageParam pageParam, QueryAction queryAction){
        //在查询之前设置分页参数(在执行查询和设置分页参数之间不能有其他的查询)
        PageHelper.startPage(pageParam);//该方法用于设置分页参数对象（含有页码PageNum和每页记录数PageSize两个属性）
        List<T> list = queryAction.executeQuery();
                //执行一个查询，获得List集合

        //紧挨在查询之后构造分页信息对象
        PageInfo<T> pageInfo = new PageInfo<>(list);

        Page<T> page = new Page<>();
        page.setCurrent(pageInfo.getPageNum());
        page.setFirst(1);
        page.setPre(pageInfo.getPrePage());
        page.setNext(pageInfo.getNextPage());
        page.setLast(pageInfo.getPages());
        page.setPageSize(pageInfo.getPageSize());
        page.setTotal(pageInfo.getTotal());
        page.setPages(pageInfo.getPages());
        page.setCurrSize(pageInfo.getSize());
        page.setList(pageInfo.getList());
        return page;
    }

}
